№1
#include <iostream>
using namespace std;

int treo(float &a, float &b, float &c, float &per, float &plosh){
    if(a+b>c && a+c>b && b+c>a){
        float pol_per = (a + b + c) / 2;
        per = a + b + c;
        plosh = sqrt(pol_per * (pol_per - a) * (pol_per - b) * (pol_per - c));
        return 1;
    }else{
        return 0;
    }
}

int main(){
    float a, b, c, per, plosh;
    cout << "Сторона a: ";
    cin >> a;
    cout << "Сторона b: ";
    cin >> b;
    cout << "Сторона c: ";
    cin >> c;
    
    if(treo(a, b, c, per, plosh)){
        cout << "Периметр = " << per << endl;
        cout << "Площадь = " << plosh << endl;
    }else{
        cout << "ERROR" << endl;
    }
}






№2
#include <iostream>
#include <cmath>
using namespace std;

double factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

void treo(int &n, int &m, float &pd, float &pm){
    double c = factorial(n) / (factorial(m) * factorial(n-m));
    pd = c * pow(0.45, m) * pow((1-0.45), (n-m));
    pm = c * pow((1-0.45), m) * pow(0.45, (n-m));
}

int main(){
    int n, m;
    float pd, pm;
    cout << "Кол-во детей: ";
    cin >> n;
    cout << "Сколько нужно тел определённого пола: ";
    cin >> m;
    
    treo(n, m, pd, pm);
    
    cout << "Вероятность, что из " << n << " детей будет " << m << " девочек = " << pd << " или " << pd * 100 << " % " << endl;
    cout << "Вероятность, что из " << n << " детей будет " << m << " мальчиков = " << pm << " или " << pm * 100 << " % " << endl;
}
